Automated camera activation

ABSTRACT

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for automated camera activation are disclosed. In one aspect, a method includes the actions of receiving, from a sensor, sensor data. The actions further include, based on the sensor data, determining that a firearm has been removed from a holster. The actions further include, based on determining that the firearm has been removed from the holster, generating a software-recognized event that indicates the firearm has been removed from the holster. The actions further include, in response to the software-recognized event that indicates the firearm has been removed from the holster, generating an instruction for a camera to record. The actions further include providing, for output, the instruction for the camera to record.

BACKGROUND

A body camera or wearable camera is a wearable audio, video, orphotographic recording system used to record events in which lawenforcement officers are involved. A camera is typically worn on thetorso of the body on the officer's uniform. An officer may activate therecording feature of a body camera by pressing a button on the camera,for example.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is described with reference to the accompanyingfigures, in which the left-most digit(s) of a reference numberidentifies the figure in which the reference number first appears. Theuse of the same reference numbers in different figures indicates similaror identical items.

FIG. 1 illustrates an example system that is configured to activate anddeactivate a body camera based on whether a firearm is in a holster.

FIG. 2 illustrates an example system that is configured to generate asoftware-recognized event based on whether a firearm is in a holster.

FIG. 3 is a flowchart of an example process for activating anddeactivating a body camera based on whether a firearm is in a holster.

FIG. 4 is a flowchart of an example process for generating asoftware-recognized event based on whether a firearm is in a holster.

FIG. 5 is a flowchart of an example process for sampling and outputtingan electronic signal generated by a sensor device.

DETAILED DESCRIPTION

Body cameras are becoming a common accessory for police officers. Thevideo footage from an officer's body camera can provide valuableevidence of the actions and interactions of the officer. While thefootage from the camera may be helpful, it is impractical for the bodycamera to continuously record, stream, or otherwise output video and/oraudio the entire time that the officer is wearing the camera. For thebody camera to store footage from an officer's entire shift, the size ofthe camera would be prohibitive because of the memory and batteryrequirements needed to store hours of video data. Because of thislimitation, many body cameras require that the officer manually activatethe recording feature and deactivate the recording feature. Whilemanually controlling the recording feature of the body camera may besufficient for routine scenarios, there may be situations where theofficer forgets to activate the recording feature, or the officer isrequired to act quickly and does not have time to activate the recordingfeature.

In order to relieve the officer of having to manually activate, the bodycamera may be paired with a sensor that is configured to detect thepresence of the officer's firearm in the holster. The sensor may beconfigured to transmit raw sensor data to the body camera or anotherdevice on the officer's person. The body camera or the other device mayreceive the raw sensor data and determine whether the firearm is likelyin or out of the holster. Based on the likely location of the firearm,the body camera may activate or deactivate the recording featureautomatically. The body camera may be set up to record if the firearm isoutside of the holster and cease recording if the firearm is in theholster.

FIG. 1 illustrates an example system 100 that is configured to activateand deactivate a body camera 120 based on whether a firearm 134 is in aholster 104. Briefly, and as described in more detail below, the user102 is carrying a firearm 134 in a holster 104. The holster 104 includesa sensor 106 that generates sensor data 136 based on the presence and/ormovement of the firearm 134. The camera 120 receives the sensor data 136and determines whether the firearm 134 has been removed from or placedin the holster. Based on that determination, the camera 120 may activateor deactivate a recording function of the video sensor 130.

In more detail, the user 102 may be a police officer who is carrying afirearm 134 and wearing a body camera 120. The user 102 may keep thefirearm 134 in the holster 104 that may be located on the hip of theuser 102. The body camera 120 may be located on the chest of the user102. The body camera 120 may include a video sensor 130. When the camera120 is recording, the video data captured by the video sensor 130 may bestored in the video storage 132. When the camera 120 is not recording,the video sensor 130 may be inactive or video data captured by the videosensor 130 may not be stored in the video storage 132.

In some implementations, the user 102 may manually activate anddeactivate the recording feature of the camera 120. In some instances,the camera 120 may include a button that the user 102 may press toactivate and deactivate the recording feature of the camera 120. Whilethis method of activation and deactivation may be sufficient for routinesituations such as traffic stops, requiring manual activation anddeactivation of the recording function may be insufficient for higherstress or fast-moving situations. In these cases, it may be beneficialfor the camera 120 to activate or deactivate the recording feature basedon detecting other actions such as removing or placing the firearm 134in the holster 104.

The holster 104 may include a sensor 106. The sensor 106 may beconfigured to provide raw sensor data 136 that is the sampled sensordata generated by the sensor device 108 to the camera 120. Based on thesensor data 136, the camera 120 may determine whether the firearm 134 islocated in the holster 104 or out of the holster 104. If the firearm 134is likely located in the holster 104, then the camera 120 may store thevideo data captured by the video sensor 130 in the video storage 132. Ifthe firearm 134 is likely located outside of the holster 104, then thecamera 120 may bypass storing the video data captured by the videosensor 130 in the video storage 132.

The sensor device 108 may be any type of hardware that is configured togenerate an electronic signal based on the presence of another object.For example, the sensor device 108 may be a metal detector thatgenerates an electronic signal based on the distance between the sensordevice 108 and a metal object such as the firearm 134. As anotherexample, the sensor device 108 may be a proximity detector thatgenerates an electronic signal based on the distance between the sensordevice 108 and another object. As another example, the sensor device maybe two-part device that includes a source and a detector. The source maygenerate a signal such as infrared light. The detector may be located ina position such that the source directs the signal towards the detector.The source and detector may be positioned in the holster 104 such thatwhen the firearm 134 is in the holster, the firearm 134 blocks thesignal from reaching the detector. When the firearm 134 is out of theholster, the detector receives the signal from the source.

The sensor 106 may include sensor device sampler 110. The sensor devicesampler 110 may be implemented by one or more processors 146 executingsoftware stored in a computer-storage media 144. The sensor devicesampler 110 may be configured to sample the electronic signal generatedby the sensor device 108. The sensor device sampler 110 may sample theelectronic signal at varying rates depending on the instructionsreceived by the sampling frequency identifier 112. The samplingfrequency identifier 112 may be configured to compare the sampled sensordata to the thresholds 114. The sampling frequency identifier 112 may beimplemented by one or more processors 146 executing software stored inthe computer-storage media 144. The thresholds 114 may include one ormore sampled sensor data thresholds or ranges to compare to the sampledsensor data and may be stored in the computer-storage media 144. Thesampled sensor data thresholds may correspond to various samplingfrequencies. Based on the sampled sensor data threshold that the sampledsensor data satisfies, the sampling frequency identifier 112 identifiesthe corresponding frequency and instructs the sensor device sampler 110to sample at that frequency.

The computer-readable media 144 may include one or more types ofcomputer-readable media such as computer storage media andcommunications media. Computer storage media includes volatile andnon-volatile, removable and non-removable media implemented in anymethod or technology for storage of information such ascomputer-readable instructions, data structures, program modules, orother data. Computer storage media includes, but is not limited to, RAM,ROM, EEPROM, flash memory or other memory technology, CD-ROM, digitalversatile disks (DVD), high-definition multimedia/data storage disks, orother optical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other non-transmissionmedium that can be used to store information for access by a computingdevice. In contrast, communication media may embody computer-readableinstructions, data structures, program modules, or other data in amodulated data signal, such as a carrier wave, or other transmissionmechanism.

As an example of the operation of the sensor device 108 and the sensordevice sampler 110, the sensor device 108 may be a metal detector thatgenerates an electronic signal that is directly related to the distancebetween a metal object and the sensor device 108. The voltage of theelectronic signal may be directly related to the distance between ametal object and the sensor device. This may result in an electronicsignal of a lower voltage when a metal object is near the sensor device108 and an electronic signal of a higher voltage when a metal object isfar from the sensor device 108. The sensor device sampler 110 may samplethe electronic signal generated by the sensor device 108 and generatesampled sensor data values that may be voltages between 0.0 and 1.0volts. The sampled sensor data value of 0.0 volts may occur when theelectronic signal is at its lowest level, and a sampled sensor datavalue of 1.0 volts may occur when the electronic signal is at itshighest level.

In some implementations, the thresholds 114 may include two sampledsensor data thresholds. A lower sampled sensor data threshold may be 0.3volts and an upper sampled sensor data threshold 0.7 volts. When thesampled sensor data value is below 0.3 volts, the sampling frequencyidentifier 112 may instruct the sensor device sampler 110 to sample theoutput of the sensor device 108 every ten seconds. A sampled sensor datavalue below 0.3 volts may likely correspond to the firearm 134 being inthe holster 104. When the sampled sensor data value is above 0.7 volts,the sampling frequency identifier 112 may instruct the sensor devicesampler 110 to sample the output of the sensor device 108 every tenseconds. A sampled sensor data value above 0.7 volts may likelycorrespond to the firearm 134 being out of the holster 104. When thesampled sensor data value is between 0.3 volts and 0.7 volts, thesampling frequency identifier 112 may instruct the sensor device sampler110 to sample the output of the sensor device 108 every tenmilliseconds. A sampled sensor data value between 0.3 volts and 0.7volts may likely correspond to the firearm 134 being placed in orremoved from the holster 104.

In some implementations, the thresholds 114 may include multiple sampledsensor data ranges. For example, the thresholds 114 may include tensampled sensor data ranges. If the sampled sensor data value is between0.0 volts and 0.1 volts, then the sampling frequency identifier 112 mayinstruct the sensor device sampler 110 to sample the output of thesensor device 108 every ten seconds. If the sampled sensor data value isbetween 0.1 volts and 0.2 volts, then the sampling frequency identifier112 may instruct the sensor device sampler 110 to sample the output ofthe sensor device 108 every ten five seconds. If the sampled sensor datavalue is between 0.4 volts and 0.5 volts, then the sampling frequencyidentifier 112 may instruct the sensor device sampler 110 to sample theoutput of the sensor device 108 every millisecond. If the sampled sensordata value is between 0.5 volts and 0.6 volts, then the samplingfrequency identifier 112 may instruct the sensor device sampler 110 tosample the output of the sensor device 108 every millisecond. If thesampled sensor data value is between 0.6 volts and 0.7 volts, then thesampling frequency identifier 112 may instruct the sensor device sampler110 to sample the output of the sensor device 108 every tenmilliseconds. Other ranges may correspond to different samplingfrequencies.

The sensor device sampler 110 may provide the sampled sensor data to thetransmitter 116. The transmitter 116 may be configured to transmit thesampled sensor data 136 to the camera 120. In some implementations, thetransmitter 116 may communicate with the receiver 122 of the camera 120using a wireless connection such as a short-range radio, infrared,and/or any other type of wireless communications. In someimplementations, the transmitter 116 may communicate with the receiver122 of the camera 120 using a wired connection.

The sensor 106 may include a transmitter controller 118. The transmittercontroller 118 may be implemented by one or more processors 146executing software stored in the computer-storage media 144. Thetransmitter controller 118 may be configured to activate and deactivatethe transmitter 116. By preventing the transmitter 116 from continuouslytransmitting the sensor data 136 to the receiver 122, the transmittercontroller 118 may help preserve the battery power of the sensor 106.The transmitter controller 118 may determine to activate or deactivatethe transmitter based on the sampled sensor data. The thresholds 114 mayinclude a transmitter activation threshold and a transmitterdeactivation threshold.

In some implementations, the transmitter activation threshold and thetransmitter deactivation threshold may correspond to sampled sensor datavalues. If the sampled sensor data value is below a lower threshold,then the transmitter controller 118 deactivates the transmitter 116. Ifthe sampled sensor data value is above an upper threshold, then thetransmitter controller 118 deactivates the transmitter 116. If thesampled sensor data value is between the upper threshold and lowerthreshold, then the transmitter controller 118 activates the transmitter116. For example, the upper threshold may be 0.8 volts and the lowerthreshold may be 0.2 volts. If the sampled sensor data value is lessthan 0.2 volts or greater than 0.8 volts, then the transmittercontroller 118 deactivates the transmitter 116. If the sampled sensordata value is between 0.2 volts and 0.8 volts, then the transmittercontroller 118 activates the transmitter 116.

In some implementations, the transmitter activation threshold and thetransmitter deactivation threshold may correspond to samplingfrequencies. If the sampling frequency is below a threshold, then thetransmitter controller 118 deactivates the transmitter 116. If thesampling frequency is above the threshold, then the transmittercontroller 118 activates the transmitter 116. For example, the thresholdmay be one sample every one hundred milliseconds. If the samplingfrequency is less frequent than one sample every one hundredmilliseconds, then the transmitter controller 118 may deactivate thetransmitter 116. If the sampling frequency is more frequent than onesample every one hundred milliseconds, then the transmitter controller118 may activate the transmitter 116.

The receiver 122 of the camera 120 may receive the sensor data 136 fromthe transmitter 116 of the sensor 108. As described above, the sensordata 136 includes sampled sensor data of the electronic signal generatedby the sensor device 108. The sensor data 136 may not include dataindicating whether the firearm 134 is in or out of the holster 104. Inother words, the sensor data 136 is raw data and the camera 120 analyzesthe sensor data 136 to determine whether the firearm 134 is in or out ofthe holster 104.

The camera 120 may include a sensor data analyzer 124. The sensor dataanalyzer 124 may be implemented by one or more processors 150 executingsoftware stored in a computer-storage media 148. The sensor dataanalyzer 124 may be configured to analyze the sensor data 136 anddetermine whether the firearm 134 is in or out of the holster 104. Ifthe sensor data analyzer 124 determines that the firearm 134 is in theholster 104, then the event generator 126 of the sensor data analyzer124 may generate a software-recognized event that indicates that thefirearm 134 is in the holster 104. If the sensor data analyzer 124determines that the firearm 134 is out of the holster 104, then theevent generator 126 of the sensor data analyzer 124 may generate asoftware-recognized event that indicates that the firearm 134 is out ofthe holster 104.

The sensor data analyzer 124 may use various techniques to analyze thesensor data 136. In some implementations, the sensor data analyzer 124may use rules to determine whether the firearm 134 is in the holster104. The rules may specify sensor data values, sensor data ranges, timeperiods, and/or other metrics to use to analyze the sensor data 136.Some rules may specify that if the sensor data 136 is greater than anupper threshold for at least a period of time, then the firearm 134 isout of the holster 104, and if the sensor data 136 is less than a lowerthreshold for at least a period of time, then the firearm 134 is in theholster 104. For example, the upper threshold may be 0.9 volts and thetime period may be one second. Therefore, if the sensor data 136 remainsabove 0.9 volts for at least one second, then the sensor data analyzer124 may determine that the firearm 134 is out of the holster 104. Thelower threshold may be 0.1 volts and the time period may be one second.Therefore, if the sensor data 136 remains below 0.1 volts for at leastone second, then the sensor data analyzer 124 may determine that thefirearm 134 is in the holster 104.

In some implementations, the sensor data analyzer 124 may use models todetermine whether the firearm 134 is in the holster 104. The models maybe trained using machine learning and previous sensor data collectedfrom other sensors and data indicating whether there was a firearm inthe corresponding holster. The models may be configured to receive thesensor data 136 and output data indicating whether the firearm 134 is inthe holster 104. In some implementations, one or more of the models maybe configured to continuously receive the sensor data 136 as thereceiver 122 receives the sensor data 136 from the transmitter 116. Theone or more models may output data indicating whether the firearm 134 isin the holster 104 based on a confidence score satisfying a confidencescore threshold. For example, a model may receive two sensor datasamples. Based on those two sensor data samples, the model may determinethat the firearm 134 is out of the holster 104 with a confidence scoreof 0.4 volts. The confidence score threshold may be 0.7 volts. The modelmay receive an additional sensor data sample. With the additional sensordata sample, the model may determine that the firearm 134 is out of theholster 104 with a confidence score of 0.8, which satisfies theconfidence score threshold of 0.7 volts. Based on the confidence scoresatisfying the confidence score threshold, the model may output dataindicating that the firearm 134 is out of the holster 104.

By using models and/or rules to analyze the sensor data 136, the sensordata analyzer 124 may increase the likelihood of false positives andother determinations that do not reflect the position of the firearm134. For example, if the user 102 may unhook the firearm 134 from theholster 104. This action may cause the firearm 134 to jostle in theholster 104, which may cause a change in the electronic signal generatedby the sensor device 108. The change may be significant enough for thetransmitter controller 118 to activate the transmitter 116. The sensordata analyzer 124 may analyze the sensor data 136 and determine that thefirearm 134 is likely still in the holster 104. A similar situation mayoccur when the firearm 134 is out of the holster 104. The user 102 maybriefly place the barrel of the firearm 134 in the holster 104. This mayoccur if the user 102 attempt to place the firearm 134 in the holster104, and then the user 102 changes his/her mind and keeps the firearm134 out of the holster 104. In this case, the transmitter controller 118may activate the transmitter 116. The sensor data analyzer 124 mayanalyze the sensor data 136 and determine that the firearm 134 is likelystill out of the holster 104.

The event generator 126 may generate a software-recognized eventindicating the state of the firearm 134 relative to the holster. In someimplementations, the event generator 126 may generate asoftware-recognized event when the likely state of the firearm 134changes. For example, the event generator 126 may generate asoftware-recognized event when the firearm 134 is placed in the holster104. In some implementations, the event generator 126 may continuouslygenerate software-recognized events that indicate the likely state ofthe firearm 134. In some implementations, the event generator 126 maygenerate the software-recognized event such that it complies with themessage queueing telemetry transport protocol.

The camera 120 may include an event publish/subscribe service 128. Theevent publish/subscribe service 128 may be implemented by one or moreprocessors executing software stored in the computer-storage media 148.The event publish/subscribe service 128 may be configured to receive thesoftware-recognized event from the event generator 126 and provide thesoftware-recognized event to the devices, entities, and/or locationsthat subscribed to the software-recognized events of the sensor dataanalyzer 124. In some implementations, the event publish/subscribeservice 128 may implement a publish/subscribe service using the messagequeueing telemetry transport protocol. Some of the other entities thatmay subscribe to the software-recognized events of the sensor dataanalyzer 124 may include a police dispatcher, a records office, and/orany other similar entity.

The sensor data analyzer 124 may be configured to generate instructionsfor the video sensor 130 in response to determining whether the firearm134 is likely in the holster 104. The sensor data analyzer 124 maygenerate an instruction for the video sensor 130 to store video data inthe video storage 132 based on determining that the firearm 134 islikely out of the holster 104. The sensor data analyzer 124 may generatean instruction for the video sensor 130 to cease storing video data inthe video storage 132 based on determining that the firearm 134 islikely in the holster 104.

In some implementations, the camera 120 may also include a microphone.The microphone may be configured to activate based on the eventgenerator 126 generating an event that indicates the firearm 134 is outof the holster 104 and deactivate based on the event generator 126generating an event that indicates the firearm 134 is in the holster104. The microphone may store the audio data in memory when active.

In some implementations, the camera 120 may be configured to output thevideo data generated by the video sensor to other computing devices,such as a server. This may be the case if the camera 120 is streamingthe video data. In some instances, the video sensor 130 may store thevideo data in the video storage 132 and the camera 120 may stream thevideo data. In some implementations, the camera 120 may store and/orstream audio data generated by a microphone.

FIG. 2 illustrates an example system 200 that is configured to generatea software-recognized event 242 based on whether a firearm 234 is in aholster 204. Briefly, and as described in more detail below, the user202 is carrying a firearm 234 in a holster 204. The holster 204 includesa sensor 204 that generates sensor data 240 based on the presence and/ormovement of the firearm 234. The hub 238 receives the sensor data 240and determines whether the firearm 234 has been removed from or placedin the holster 204. Based on that determination, the hub 238 maygenerate a firearm event 242 that indicates that the firearm 234 hasbeen removed from or placed in the holster 204. The camera 220 maysubscribe to the firearm event 242. In response to receiving the firearmevent 242, the camera 220 may activate or deactivate a recordingfunction of the video sensor 230.

In more detail, the user 202 may be a police office who is carrying afirearm 234, wearing a body camera 220, and carrying a communicationshub 238. The user 202 may keep the firearm 234 in the holster 204 thatmay be located on the hip of the user 202. The body camera 220 may belocated on the chest of the user 202. The body camera 220 may include avideo sensor 230. When the camera 220 is recording, the video datacaptured by the video sensor 230 may be stored in the video storage 232.When the camera 220 is not recording, the video sensor 230 may beinactive or video data captured by the video sensor 230 may not bestored in the video storage 232.

Similar to FIG. 1 , the user 202 may manually activate and deactivatethe recording feature of the camera 220 by pressing a button. Theholster 204 may include a sensor 206. The sensor 206 may be similar tothe sensor 106 of FIG. 1 . The sensor device 208, the sensor devicesampler 210, the sampling frequency identifier 212, the thresholds 214,the transmitter controller 218, and the transmitter 216 may be similarto the sensor device 108, the sensor device sampler 110, the samplingfrequency identifier 112, the thresholds 114, the transmitter controller118, and the transmitter 116 of the sensor 106 of FIG. 1 , respectively.The sensor data 240 outputted by the transmitter 216 may be similar tothe sensor data 140 outputted by the transmitter 216 of FIG. 1 .

The camera 220 and the communications hub 238 may include some similarcomponents to the camera 120 of FIG. 1 . In the implementation of FIG. 2, the components are split between the camera 220 and the communicationshub 238. The communications hub 238 may be any type of computing devicethat is configured to communicate with other electronic devices. Forexample, the communications hub 238 may be a mobile phone, a radio, atablet, a smart watch, a laptop, camera, or any other similar type ofdevice.

The communications hub 238 may include a receiver 222, a sensor dataanalyzer 224, an event generator 226, and an event publish/subscribeservice 228. The receiver 222, sensor data analyzer 224, event generator226, and event publish/subscribe service 228 may be similar to thereceiver 122, the sensor data analyzer, the event generator 126, and theevent publish/subscribe service 128 of the camera 120 in FIG. 1 ,respectively.

The event publish/subscribe service 228 may receive asoftware-recognized event from the event generator 226. Thesoftware-recognized event may indicate that the firearm 234 is in theholster 204 or that the firearm 234 is out of the holster 204. The eventpublish/subscribe service 228 may output a firearm event 242 thatincludes data indicating whether the firearm 234 is in the holster 204or that the firearm 234 is out of the holster 204. In someimplementations, the software-recognized event may indicate changes inthe location of the firearm 234, such as when the firearm 234 is removedfrom the holster 204 or when the firearm 234 is placed in the holster204. In some implementations, the software-recognized event may indicatelocation of the firearm 234 independent of whether the location of thefirearm 234 has changed.

The camera 220 may include an event subscriber 236. The event subscriber236 may subscribe to firearm events generated by the eventpublish/subscribe service 228. The event subscriber 236 implement asubscriber using the message queuing telemetry transport protocol. Theevent subscriber 236 may be implemented by one or more processors 254executing software stored in a computer-storage media 252. In responseto receiving the firearm event 242, the event subscriber 236 maydetermine whether the firearm event 242 indicates whether the firearm234 is in or out of the holster 204. If the firearm event 242 indicatesthat the firearm 234 is in the holster 204, then the event subscriber236 may instruct the video sensor 230 to cease storing video data in thevideo storage 232. If the firearm event 242 indicates that the firearm234 is out of the holster 204, then the event subscriber 236 mayinstruct the video sensor 230 to store video data in the video storage232. The video sensor 230 and the video storage 232 may be similar tothe video sensor 130 and the video storage 132 of FIG. 1 , respectively.

In some implementations, the technology illustrated in FIGS. 1 and 2 canbe extended to other event detection situations. The user 102 may becarrying other equipment that may have sensors similar to the sensor106. For example, the user 102 may be carrying a baton, taser,handcuffs, and/or any other similar type of equipment. The holder foreach of these pieces of equipment may include a sensor similar to thesensor 106. When the equipment is placed in or removed from the holder,then the event generator 126 of the sensor data analyzer 124 maygenerate an event that indicates the placement or removal of theequipment. The event generator 126 may provide that event to the eventpublish/subscribe service 128 where various devices may subscribe tothose events.

Because the event generator 126 provides the events to the eventpublish/subscribe service 128, different types of devices may subscribeto and act on those events. For example, the user 102 may be carrying aradio that may begin or cease to receive and output audio data inresponse to an unholstering event or a holstering event, respectively.Other devices that subscribe to and act on those events may be devicesthat user 102 is not carrying around. For example, an audible alarm, asilent alarm, a central station, a dispatch system, devices located in avehicle, and/or any other similar device may subscribe to the events.

In some implementations, devices may subscribe to events and determinewhether to act on them based on the location of the event. In this case,the event may include data related to the location of the sensor 106.The sensor data analyzer 124 may receive data indicating a location ofthe sensor 106 in advance of generating an event. For example, thesensor data analyzer 124 may receive the location of the sensor 106during the setup process. The location may be indicated as on the user102. The sensor data analyzer 124 may receive data indicating that thecamera 120 is also on the user 102. The camera 120 may include alocation detector such as a GPS receiver or other device to determinethe location of the camera 120. The event generator 126 may generate anevent indicating the location of the firearm 134, determine that thesensor 106 and the camera 120 are on the user 120, access the locationdata from the location detector, and include, in the event, the locationgenerated by the location detector.

The other devices that may act on an event based on the location of theevent may be other body cameras, stationary cameras, alarms,microphones, and/or any other similar devices. For example, a camera maybe located on the body of a nearby user. If an event subscriber of thecamera of the nearby user subscribes to firearm events, and the camera120 determines that the firearm event occurred within a thresholddistance, such as one mile of the camera of the nearby user, then thecamera of the nearby user may begin recording and/or streaming videodata.

FIG. 3 is a flowchart of an example process 300 for activating anddeactivating a body camera 120 based on whether a firearm 134 is in aholster 104. In general, the process 300 receives sensor data from asensor. The process 300 analyzes the sensor data and determines that thefirearm 134 has been removed from the holster 104. The process 300instructs the video sensor 130 of the camera 120 to begin recording. Theprocess 300 will be described as being performed by the system 100 ofFIG. 1 and will include references to components of the sensor 106 andthe camera 120 in FIG. 1 .

The camera 120 receives, from a sensor 106 that is separate from thecamera 120, sensor data (310). In some implementations, the camera 120and the sensor 106 communicate over a wireless communication channel. Insome implementations, the sensor 106 is configured to sample anelectronic signal generated by a sensor device 108 of the sensor 106 andtransmit the sampled electronic signal to the camera 120. The sensordata may include the sampled electronic signal. In some implementations,the sensor 106 is configured to transmit the sampled electronic signalto the camera 120 in response to determining that the sampled electronicsignal satisfies a sampled electronic signal threshold. In someimplementations, the sensor 106 is configured to sample the electronicsignal at varying sampling frequencies based on the sampled electronicsignal.

Based on the sensor data 136, the camera 120 determines that a firearmhas been removed from a holster (320). In some implementations, thecamera 120 may analyze the sensor data 136 using one or more rules. Theone or more rules may specify patterns, thresholds, timing, and/or anyother characteristic to identify in the sensor data 136. For example, arule may specify that if the sensor data 136 includes sampled electronicsignal values above a threshold for at least one second, then thefirearm 134 is likely out of the holster 104. Another rule may specifythat if the sensor data 136 includes sampled electronic signal valuesbelow a threshold for at least one second, then the firearm 134 islikely in the holster 104.

In some implementations, the camera 120 may analyze the sensor data 136using one or more models. The models may be trained using machinelearning and historical sensor data that is labeled as corresponding tothe firearm in the holster or out of the holster. The camera 120 oranother computing device may include a model trainer trains the models.The model trainer may generate data samples using the historical sensordata. Each data sample may include one or more sampled electronic signalvalues and a label indicating whether the firearm is in or out of theholster. The data sample may include that time that elapsed between thesampling of the electronic signal. The model trainer may group the datasamples according to type of sensor. For example, data samples from afirst type of infrared sensor may be grouped together. data samples froma second type of infrared sensor may be grouped together. Data samplesfrom a metal sensor may be grouped together. The model trainer may traina model using each group of data samples. The resulting model may beconfigured to receive sampled electronic signal values from the sensorto which the model corresponds and output data indicating whether thefirearm is likely in the holster. In some implementations, the model mayreceive data indicating the period of time between each sampledelectronic signal value. In some implementations, the model may beconfigured to receive the sampled electronic signal values with the timebetween receiving the sampled electronic signal values being the periodof time between the sampling of the electronic signal.

Based on determining that the firearm has been removed from the holster,the camera 120 generates a software-recognized event that indicates thefirearm has been removed from the holster (330). In someimplementations, the software-recognized event may be in a messagequeuing telemetry transport protocol. In some implementations, thecamera 120 may provide the software-recognized event to an eventpublish/subscribe service. The event publish/subscribe service mayimplement the message queuing telemetry transport protocol.

In response to the software-recognized event that indicates the firearmhas been removed from the holster, the camera 120 determines aninstruction for a video sensor 130 to record (340). The camera 120provides the instruction for the video sensor 130 to record (350). Insome implementations, the video sensor 130 and/or a controller of thevideo sensor 130 may subscribe to software-recognized event related tothe sensor 106. The video sensor 130 and/or a controller of the videosensor 130 may receive the software-recognized event and based onwhether the firearm is in or out of the holster, the video sensor 130and/or a controller of the video sensor 130 may begin or cease storingvideo data in the video storage 132.

FIG. 4 is a flowchart of an example process 400 for generating asoftware-recognized event based on whether a firearm 234 is in a holster204. In general, the process 400 receives sensor data 240 from a sensor206. The process 400 analyzes the sensor data 240 and determines thatthe firearm 234 has been removed from the holster 204. The process 400generates a software-recognized event that indicates whether the firearm234 is in the holster 204. The process 400 will be described as beingperformed by the system 200 of FIG. 2 and will include references tocomponents of the sensor 206, hub 238, and the camera 220 in FIG. 2 .

The hub 238 receives, from a sensor that is separate from the camera120, sensor data (410). In some implementations, the hub 238 and thesensor 206 communicate over a wireless communication channel. In someimplementations, the sensor 206 is configured to sample an electronicsignal generated by a sensor device 208 of the sensor 106 and transmitthe sampled electronic signal to the hub 238. The sensor data mayinclude the sampled electronic signal. In some implementations, thesensor 206 is configured to transmit the sampled electronic signal tothe hub 238 in response to determining that the sampled electronicsignal satisfies a sampled electronic signal threshold. In someimplementations, the sensor 206 is configured to sample the electronicsignal at varying sampling frequencies based on the sampled electronicsignal.

Based on the sensor data, the hub 238 determines that a firearm 234 hasbeen removed from a holster 204 (420). In some implementations, the hub238 may analyze the sensor data 240 using one or more rules and/ormodels described above in relation to FIG. 3 . The hub 238 may select arule or model based on the type of sensor 206. For example, the hub 238may select a rule or model that is configured to receive sensor datacollected from a metal sensor based on the sensor 206 being a metalsensor.

Based on determining that the firearm has been removed from the holster,the hub 238 generates a software-recognized event that indicates thefirearm has been removed from the holster 204 (430). In someimplementations, the software-recognized event may be in a messagequeuing telemetry transport protocol.

The hub 238 provides the software-recognized event that indicates thefirearm has been removed from the holster to an event publish/subscribeservice 228 (440). The event publish/subscribe service may implement themessage queuing telemetry transport protocol. The camera 220 may includean event subscriber 236 that subscribes to software-recognized eventrelated to the firearm 234 and/or the sensor 206. The camera 220 mayreceive the software-recognized event that indicates the firearm 234 hasbeen removed from the holster 204. The event subscriber 236 may instructthe video sensor 230 to store video data in the video storage 232.

FIG. 5 is a flowchart of an example process 500 for sampling andoutputting an electronic signal generated by a sensor device. Ingeneral, the process 500 generates an electronic signal based on thepresence of an object. The process 500 determines a sampling frequencyfor the electronic signal and determines whether to output the sampledelectronic signal. The process 500 will be described as being performedby the system 100 of FIG. 1 and will include references to components ofthe FIG. 1 . In some implementations, the process 500 may be preformedby the system 200 of FIG. 2 .

The sensor device 108 of the sensor 106 generates an electronic signalin response to detecting the presence of an object (510). The sensordevice 108 may be any type of device that is configured to generate anelectronic signal in the presence of an object. The sensor device 108may generate an electronic signal that varying based on the distancebetween the object and the sensor device 108. For example, the sensordevice 108 may be a metal sensor, infrared sensor, proximity detector,and/or any other similar type of sensing device. The electronic signalmay vary between two boundary values. One of those boundary values mayindicate that the object is as close as possible to the sensor device108. The other boundary value may indicate that the object is notdetected by the sensor device 108.

Based on the electronic signal, the sampling frequency identifier 112 ofthe sensor 106 determines a sampling frequency at which to sample theelectronic signal (520). The sampling frequency identifier 112 may beconfigured to adjust the sampling frequency based on the value of theelectronic signal. The sampling frequency identifier 112 may select alower frequency if the value of the electronic signal is within athreshold value of the boundary values. This may indicate that locationof the firearm 134 is stable. The sampling frequency identifier 112 mayselect a higher frequency if the value of the electronic signal iswithin an additional threshold value of a center value in the middle ofthe two boundary values. This may indicate that the location of thefirearm 134 is changing.

The sensor device sampler 110 of the sensor 106 generates a sampledelectronic signal by sampling the electronic signal at the samplingfrequency (530). The sensor device sampler 110 may receive aninstruction from the sampling frequency identifier 112 regarding thesampling frequency of the electronic signal from the sensor device 108.

The transmitter controller 118 of the sensor 106 determines whether toactivate a transmitter (540). The transmitter controller 118 may beconfigured to activate or deactivate the transmitter 116 based on thevalue of the sampled electronic signal. The transmitter controller 118may compare the value of the sampled electronic signal to a range. Therange may include the center value in the middle of the two boundaryvalues. If the value of the sampled electronic signal is within thatrange, then the transmitter controller 118 may activate the transmitter116. If the value of the sampled electronic signal is outside thatrange, then the transmitter controller 118 may deactivate thetransmitter 116.

Based on determining whether to activate the transmitter, the sensor 106determines whether to provide the sampled electronic signal to thetransmitter and instruct the transmitter to transmit the sampledelectronic signal (550). If the transmitter 116 is active, then thesensor device sampler 110 may provide the sampled electronic signal tothe transmitter 116. The transmitter 116 may transmit the sampledelectronic signal to the receiver 122 of the camera 120. If thetransmitter 116 is inactive, then the sensor device sampler 110 maybypass providing the sampled electronic signal to the transmitter 116.In this case, the receiver 122 may not receive the sampled electronicsignal from the transmitter 116.

Although a few implementations have been described in detail above,other modifications are possible. In addition, the logic flows depictedin the figures do not require the particular order shown, or sequentialorder, to achieve desirable results. In addition, other actions may beprovided, or actions may be eliminated, from the described flows, andother components may be added to, or removed from, the describedsystems. Accordingly, other implementations are within the scope of thefollowing claims.

What is claimed is:
 1. A computer-implemented method, comprising:receiving, by a computing device and from a sensor that is separate fromthe computing device, sensor data; based on the sensor data,determining, by the computing device, that a firearm has been removedfrom a holster; based on determining that the firearm has been removedfrom the holster, generating, by an event generator of the computingdevice, a software-recognized event that indicates the firearm has beenremoved from the holster; providing, by the event generator of thecomputing device and to an event publication service of the computingdevice, the software-recognized event that indicates the firearm hasbeen removed from the holster; and in response to receiving thesoftware-recognized event that indicates the firearm has been removedfrom the holster, providing, by the event publication service of thecomputing device and to an event subscriber that subscribes to thesoftware-recognized event that indicates the firearm has been removedfrom the holster, the software-recognized event that indicates thefirearm has been removed from the holster, wherein the event subscriberis configured to transmit, to a video sensor, a request to generatevideo data.
 2. The method of claim 1, comprising: receiving, by thecomputing device and from the sensor, additional sensor data; based onthe additional sensor data, determining, by the computing device, thatthe firearm has been placed in the holster; based on determining thatthe firearm has been placed in the holster, generating, by the computingdevice, an additional software-recognized event that indicates thefirearm has been placed in the holster; and in response to theadditional software-recognized event that indicates the firearm has beenplaced in the holster, deactivating, by the computing device, the videosensor that is configured to generate video data.
 3. The method of claim1, wherein the computing device and the sensor communicate wirelessly.4. The method of claim 1, wherein the sensor is configured to sample anelectronic signal generated by a sensing device and transmit the sampledelectronic signal to the computing device.
 5. The method of claim 4,wherein the sensor is configured to transmit the sampled electronicsignal to the computing device in response to determining that thesampled electronic signal satisfies a sampled electronic signalthreshold.
 6. The method of claim 4, wherein the sensor is configured tosample the electronic signal at varying frequencies based on the sampledelectronic signal.
 7. (canceled)
 8. The method of claim 1, comprising:storing, by the computing device, the video data generated by the videosensor.
 9. The method of claim 1, comprising: providing, for output bythe computing device, the video data generated by the video sensor. 10.A system, comprising: one or more processors; and memory including aplurality of computer-executable components that are executable by theone or more processors to perform a plurality of actions, the pluralityof actions comprising: receiving, by a computing device and from asensor that is separate from the computing device, sensor data; based onthe sensor data, determining, by the computing device, that a firearmhas been removed from a holster; based on determining that the firearmhas been removed from the holster, generating, by an event generator ofthe computing device, a software-recognized event that indicates thefirearm has been removed from the holster; providing, by the eventgenerator of the computing device and to an event publication service ofthe computing device, the software-recognized event that indicates thefirearm has been removed from the holster; and in response to receivingthe software-recognized event that indicates the firearm has beenremoved from the holster, providing, by the event publication service ofthe computing device and to an event subscriber that subscribes to thesoftware-recognized event that indicates the firearm has been removedfrom the holster, the software-recognized event that indicates thefirearm has been removed from the holster, wherein the event subscriberis configured to transmit, to a video sensor, a request to generatevideo data.
 11. The system of claim 10, wherein the actions comprise:receiving, by the computing device and from the sensor, additionalsensor data; based on the additional sensor data, determining, by thecomputing device, that the firearm has been placed in the holster; basedon determining that the firearm has been placed in the holster,generating, by the computing device, an additional software-recognizedevent that indicates the firearm has been placed in the holster; and inresponse to the additional software-recognized event that indicates thefirearm has been placed in the holster, deactivating, by the computingdevice, the video sensor that is configured to generate video data. 12.The system of claim 10, wherein the computing device and the sensorcommunicate wirelessly.
 13. The system of claim 10, wherein the sensoris configured to sample an electronic signal generated by a sensingdevice and transmit the sampled electronic signal to the computingdevice.
 14. The system of claim 13, wherein the sensor is configured totransmit the sampled electronic signal to the computing device inresponse to determining that the sampled electronic signal satisfies asampled electronic signal threshold.
 15. The system of claim 13, whereinthe sensor is configured to sample the electronic signal at varyingfrequencies based on the sampled electronic signal.
 16. 17. The systemof claim 10, wherein the actions comprise: storing, by the computingdevice, the video data generated by the video sensor.
 18. The system ofclaim 10, wherein the actions comprise: providing, for output by thecomputing device, the video data generated by the video sensor.
 19. Oneor more non-transitory computer-readable media of a computing devicestoring computer-executable instructions that upon execution cause oneor more computers to perform acts comprising: receiving, by a computingdevice and from a sensor that is separate from the computing device,sensor data; based on the sensor data, determining, by the computingdevice, that a firearm has been removed from a holster; based ondetermining that the firearm has been removed from the holster,generating, by an event generator of the computing device, asoftware-recognized event that indicates the firearm has been removedfrom the holster; providing, by the event generator of the computingdevice and to an event publication service of the computing device, thesoftware-recognized event that indicates the firearm has been removedfrom the holster; and in response to receiving the software-recognizedevent that indicates the firearm has been removed from the holster,providing, by the event publication service of the computing device andto an event subscriber that subscribes to the software-recognized eventthat indicates the firearm has been removed from the holster, thesoftware-recognized event that indicates the firearm has been removedfrom the holster, wherein the event subscriber is configured totransmit, to a video sensor, a request to generate video data.
 20. Themedia of claim 19, wherein the acts comprise: receiving, by thecomputing device and from the sensor, additional sensor data; based onthe additional sensor data, determining, by the computing device, thatthe firearm has been placed in the holster; based on determining thatthe firearm has been placed in the holster, generating, by the computingdevice, an additional software-recognized event that indicates thefirearm has been placed in the holster; and in response to theadditional software-recognized event that indicates the firearm has beenplaced in the holster, deactivating, by the computing device, the videosensor that is configured to generate video data.